home *** CD-ROM | disk | FTP | other *** search
- (*----------------------------------------------------------------------------
- :Program. SetMode.mod
- :Contents. Prozedur, mir der man ein CON: Fenster in den RAW: Modus
- :Contents. setzen kann, macht also dasselbe wie die gleichnamige Funktion
- :Contents. der dos.library V36 und höher.
- :Author. Christian Stiens
- :Address. Snail-Mail: E-Mail:
- :Address. Heustiege 2 UUCP: Christian_Stiens@ouzonix.bo.open.de
- :Address. W-4710 Lüdinghausen FIDO: 2:245/5802
- :Copyright. public domain
- :Language. Oberon-2
- :Translator. Amiga Oberon V2.45d (inofficial beta-version)
- :History. V1.0, 21-Nov-92: first release
- :Support. Chuck McManis (RawIO, FF #85)
- ----------------------------------------------------------------------------*)
-
- MODULE SetMode;
-
- IMPORT d:=Dos, e:=Exec, es:ExecSupport, SYS:=SYSTEM;
-
-
- PROCEDURE SendPacket (procId : e.MsgPortPtr;
- action : LONGINT;
- args : ARRAY OF LONGINT): LONGINT; (* $CopyArrays- *)
- VAR
- replyport : e.MsgPortPtr;
- packet : d.StandardPacketPtr;
- count,res1 : LONGINT;
- pargs : UNTRACED POINTER TO ARRAY 7 OF LONGINT;
-
- BEGIN
- replyport := es.CreatePort("",0);
- IF replyport=NIL THEN RETURN 0 END;
- packet := e.AllocMem(SIZE(packet^),LONGSET{e.public,e.memClear});
- IF packet=NIL THEN
- es.DeletePort(replyport);
- RETURN 0
- END;
- packet.msg.node.name := SYS.ADR(packet.pkt);
- packet.pkt.link := SYS.ADR(packet.msg);
- packet.pkt.port := replyport;
- packet.pkt.type := action;
- pargs := SYS.ADR(packet.pkt.arg1);
- FOR count := 0 TO LEN(args)-1 DO
- pargs[count] := args[count]
- END;
- e.PutMsg(procId,packet);
- e.WaitPort(replyport);
- SYS.SETREG(0,e.GetMsg(replyport));
- res1 := packet.pkt.res1;
- e.FreeMem(packet,SIZE(packet^));
- es.DeletePort(replyport);
- RETURN res1
- END SendPacket;
-
-
- PROCEDURE SetMode* (fh : d.FileHandlePtr;
- mode : LONGINT): LONGINT;
- VAR
- Arg : ARRAY 1 OF LONGINT;
-
- BEGIN
- IF ~d.IsInteractive(fh) THEN RETURN 0 END;
- Arg[0] := mode;
- RETURN SendPacket(fh.type,d.screenMode,Arg);
- END SetMode;
-
-
- END SetMode.
-
-